package com.dews.course.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dews.common.utils.excel.ExcelSelectRo;
import com.dews.course.domain.entity.StudentScore;
import com.dews.course.domain.ro.StudentScoreDetailRo;
import com.dews.course.domain.ro.StudentScoreRo;
import com.dews.course.domain.vo.StudentScoreVo;

import java.util.ArrayList;
import java.util.List;

/**
 * 学生课程成绩Service接口
 * 
 * @author qingfeng
 * @date 2025-01-21
 */
public interface IStudentScoreService extends IService<StudentScore> {

    /**
     * 封装学生成绩导入模版下拉数据
     * @return
     */
    List<ExcelSelectRo> selectDropDown();

    /**
     * 导入学生成绩
     * @param studentScoreRoList
     * @param errorList
     * @param courseCode
     */
    void importData(ArrayList<StudentScoreRo> studentScoreRoList, ArrayList<StudentScoreRo> errorList, String courseCode);

    /**
     * 专业课程点击详情查询课程下的学生成绩信息
     *
     * @param courseId
     * @return {@link List }<{@link StudentScoreVo }>
     */
    List<StudentScoreDetailRo> selectStudentScoreByCourseId(Integer courseId);

    /**
     * 学生查询课程成绩信息
     * @return
     */
    List<StudentScoreDetailRo> stuScoreDetail();





    /**
     * 查询学生课程成绩
     * 
     * @param id 学生课程成绩主键
     * @return 学生课程成绩
     */
    public StudentScoreVo selectStudentScoreById(Integer id);

    /**
     * 查询学生课程成绩列表
     * 
     * @param studentScoreVo 学生课程成绩
     * @return 学生课程成绩集合
     */
    public List<StudentScoreVo> selectStudentScoreList(StudentScoreVo studentScoreVo);

    /**
     * 新增学生课程成绩Vo
     *
     * @param studentScoreVo
     * @return 结果
     */
    public int insertStudentScore(StudentScoreVo studentScoreVo);

    /**
     * 修改学生课程成绩Vo
     *
     * @param studentScoreVo
     * @return 结果
     */
    public int updateStudentScore(StudentScoreVo studentScoreVo);

    /**
     * 批量删除学生课程成绩
     * 
     * @param ids 需要删除的学生课程成绩主键集合
     * @return 结果
     */
    public int deleteStudentScoreByIds(List<Integer> ids);

}
